/*
 * LevelContext.h
 *
 *  Created on: 21/04/2011
 *      Author: ehpalumbo
 */

#ifndef __LEVEL_CONTEXT_H_
#define __LEVEL_CONTEXT_H_

#include "AbstractContext.h"

using dataunits::Escape;

namespace contexts {


class LevelContext : public AbstractContext {
protected:
	vector<ContextUnit*>* units;
public:
	LevelContext(vector<DataUnit*>& dataUnits);
	virtual unsigned int getTotalFrequency();
	virtual vector<ContextUnit*>& getUnits();
	virtual ContextUnit& getContextUnitFor(DataUnit& dataUnit);
	virtual ContextUnit& getEscape();
	virtual ~LevelContext();

};


}

#endif /* __LEVEL_CONTEXT_H_ */
